home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1999 October: Technology Seed / ADC Seed CD - October 1999.toast / FireWire / FireWire_2.1_SDK_DR3 / Source / AVTransport / Interfaces / AVTransport.h next >
Encoding:
C/C++ Source or Header  |  1999-05-17  |  7.6 KB  |  342 lines  |  [TEXT/MPS ]

  1. /*
  2.     File:        AVTransport.h
  3.  
  4.     Contains:    Definitions and interfaces for AV transport control driver
  5.                 family.
  6.  
  7.     Version:    1.0
  8.  
  9.     Written by:    Erik Staats
  10.  
  11.     Copyright:    © 1996-1998 by Apple Computer, Inc., all rights reserved.
  12.  
  13.     File Ownership:
  14.  
  15.         DRI:                Eric Anderson
  16.  
  17.         Other Contact:        
  18.  
  19.         Technology:            FireWire
  20.  
  21.     Writers:
  22.  
  23.         (jkl)    Jay Lloyd
  24.  
  25.     Change History (most recent first):
  26.  
  27.         <10>     1/15/98    jkl        Update for new interfaces.
  28.        <FW9>      2/7/97    ES        Added procedure prototype for GetNextAVTClientEvent.
  29.        <FW8>    10/22/96    ES        Changed to generic driver model.
  30.        <FW7>     9/24/96    GG        Added type definitions support for Nextframe, previousframe,
  31.                                     slow, fastplay, review, playback, pause, rewind, and fastforward
  32.                                     and whatchadoing.
  33.        <FW6>     7/31/96    ES        Added dumpBufferOffset to AVTDumpParams.
  34.        <FW5>      7/8/96    ES        Added support for snap shot grabbing and playing capabilities.
  35.        <FW4>     6/20/96    ES        Made this look more like a .i generated interface.
  36.        <FW3>     6/20/96    ES        Changed some comments and formatting.
  37.        <FW2>     6/20/96    ES        Filled in contains and written by fields.
  38.        <FW1>     6/20/96    ES        first checked in
  39.  
  40. */
  41.  
  42. #ifndef __AVTRANSPORT__
  43. #define __AVTRANSPORT__
  44.  
  45. #ifndef __TYPES__
  46. #include <Types.h>
  47. #endif
  48. #ifndef __APPLEEVENTS__
  49. #include <AppleEvents.h>
  50. #endif
  51. #ifndef __NAMEREGISTRY__
  52. #include <NameRegistry.h>
  53. #endif
  54.  
  55. #ifdef __cplusplus
  56. extern "C" {
  57. #endif
  58.  
  59. #if PRAGMA_IMPORT_SUPPORTED
  60. #pragma import on
  61. #endif
  62.  
  63. #if PRAGMA_ALIGN_SUPPORTED
  64. #pragma options align=mac68k
  65. #endif
  66.  
  67. ////////////////////////////////////////////////////////////////////////////////
  68. //
  69. // AV transport control driver family typedefs.
  70. //
  71.  
  72. typedef struct OpaqueAVTClientID*        AVTClientID;
  73. typedef struct OpaqueAVTDriverID*        AVTDriverID;
  74.  
  75. enum
  76. {
  77.     kInvalidAVTClientID            = 0,
  78.     kInvalidAVTDriverID            = 0
  79. };
  80.  
  81. enum
  82. {
  83.     kNdrvTypeIsAVTransport        = 'AVT '
  84. };
  85.  
  86. enum
  87. {
  88.     // Apple event class for AV transport control driver family.
  89.     kAEAVTransportEventClass    = 'AVT ',
  90.  
  91.     // Apple events sent by AV transport control driver family.
  92.     kAEAVTransportDeviceAdded    = 'ADDD',
  93.     kAEAVTransportDeviceRemoved    = 'RMVD',
  94.  
  95.     // Parameters used by AV transport control driver family Apple events.
  96.     kAEAVTDriverIDKey            = 'DRID',
  97.     kAEAVTDriverIDType            = typeLongInteger //zzz should we have our own???
  98. };
  99.  
  100. struct AVTInterfaceParamsStruct
  101. {
  102.     UInt32                        interfaceSelector;
  103. };
  104. typedef struct AVTInterfaceParamsStruct
  105.                                 AVTInterfaceParams,
  106.                                 *AVTInterfaceParamsPtr;
  107.  
  108. typedef OSErr
  109.     (AVTInterfaceProc) (
  110.         AVTInterfaceParamsPtr    pInterfaceParams);
  111. typedef AVTInterfaceProc        *AVTInterfaceProcPtr;
  112.  
  113. enum
  114. {
  115.     cscAVTCommand                = 2
  116. };
  117.  
  118. enum
  119. {
  120.     kAVTransportStop            = 1,
  121.     kAVTransportPlay            = 2,    
  122.     kAVTransportNextFrame        = 3,
  123.     kAVTransportPreviousFrame    = 4,
  124.     kAVTransportSlow            = 5,
  125.     kAVTransportFastPlay        = 6,
  126.     kAVTransportReview            = 7,
  127.     kAVTransportPlayBack        = 8,
  128.     kAVTransportPause            = 9,
  129.     kAVTransportRewind            = 10,
  130.     kAVTransportFastForward        = 11,
  131.     kAVTransportDump            = 1000,
  132.     kAVTransportPlaySnapShot    = 1001,
  133.     kAVTransportStopSnapShot    = 1002,
  134.     kAVTransportWhatchaDoing    = 1003
  135. };
  136.  
  137. struct AVTGenericParamsStruct
  138. {
  139.     AVTInterfaceParams            avtInterfaceParams;
  140.     Ptr                            responseBufferPtr;
  141.     UInt32                        responseBufferSize;
  142. };
  143. typedef struct AVTGenericParamsStruct
  144.                                 AVTGenericParams,
  145.                                 *AVTGenericParamsPtr;
  146.  
  147. struct AVTInitializeParamsStruct
  148. {
  149.     AVTInterfaceParams            avtInterfaceParams;
  150.     RegEntryID                    *pDriverRegEntry;
  151. };
  152. typedef struct AVTInitializeParamsStruct
  153.                                 AVTInitializeParams,
  154.                                 *AVTInitializeParamsPtr;
  155.  
  156. struct AVTTerminateParamsStruct
  157. {
  158.     AVTInterfaceParams            avtInterfaceParams;
  159.     RegEntryID                    *pDriverRegEntry;
  160. };
  161. typedef struct AVTTerminateParamsStruct
  162.                                 AVTTerminateParams,
  163.                                 *AVTTerminateParamsPtr;
  164.  
  165. struct AVTPlayParamsStruct
  166. {
  167.     AVTInterfaceParams            avtInterfaceParams;
  168.     Ptr                            responseBufferPtr;
  169.     UInt32                        responseBufferSize;
  170. };
  171. typedef struct AVTPlayParamsStruct
  172.                                 AVTPlayParams,
  173.                                 *AVTPlayParamsPtr;
  174.  
  175. struct AVTRewindParamsStruct
  176. {
  177.     AVTInterfaceParams            avtInterfaceParams;
  178.     Ptr                            responseBufferPtr;
  179.     UInt32                        responseBufferSize;
  180. };
  181. typedef struct AVTRewindParamsStruct
  182.                                 AVTRewindParams,
  183.                                 *AVTRewindParamsPtr;
  184.  
  185. struct AVTReviewParamsStruct
  186. {
  187.     AVTInterfaceParams            avtInterfaceParams;
  188.     Ptr                            responseBufferPtr;
  189.     UInt32                        responseBufferSize;
  190. };
  191. typedef struct AVTReviewParamsStruct
  192.                                 AVTReviewParams,
  193.                                 *AVTReviewParamsPtr;
  194.  
  195. struct AVTFastForwardParamsStruct
  196. {
  197.     AVTInterfaceParams            avtInterfaceParams;
  198.     Ptr                            responseBufferPtr;
  199.     UInt32                        responseBufferSize;
  200. };
  201. typedef struct AVTFastForwardParamsStruct
  202.                                 AVTFastForwardParams,
  203.                                 *AVTFastForwardParamsPtr;
  204.  
  205. struct AVTFastPlayParamsStruct
  206. {
  207.     AVTInterfaceParams            avtInterfaceParams;
  208.     Ptr                            responseBufferPtr;
  209.     UInt32                        responseBufferSize;
  210. };
  211. typedef struct AVTFastPlayParamsStruct
  212.                                 AVTFastPlayParams,
  213.                                 *AVTFastPlayParamsPtr;
  214.  
  215. struct AVTStopParamsStruct
  216. {
  217.     AVTInterfaceParams            avtInterfaceParams;
  218.     Ptr                            responseBufferPtr;
  219.     UInt32                        responseBufferSize;
  220. };
  221. typedef struct AVTStopParamsStruct
  222.                                 AVTStopParams,
  223.                                 *AVTStopParamsPtr;
  224.  
  225. struct AVTPauseParamsStruct
  226. {
  227.     AVTInterfaceParams            avtInterfaceParams;
  228.     Ptr                            responseBufferPtr;
  229.     UInt32                        responseBufferSize;
  230. };
  231. typedef struct AVTPauseParamsStruct
  232.                                 AVTPauseParams,
  233.                                 *AVTPauseParamsPtr;
  234.  
  235. struct AVTSlowParamsStruct
  236. {
  237.     AVTInterfaceParams            avtInterfaceParams;
  238.     Ptr                            responseBufferPtr;
  239.     UInt32                        responseBufferSize;
  240. };
  241. typedef struct AVTSlowParamsStruct
  242.                                 AVTSlowParams,
  243.                                 *AVTSlowParamsPtr;
  244.  
  245. struct AVTNextFrameParamsStruct
  246. {
  247.     AVTInterfaceParams            avtInterfaceParams;
  248.     Ptr                            responseBufferPtr;
  249.     UInt32                        responseBufferSize;
  250. };
  251. typedef struct AVTNextFrameParamsStruct
  252.                                 AVTNextFrameParams,
  253.                                 *AVTNextFrameParamsPtr;
  254.  
  255. struct AVTPreviousFrameParamsStruct
  256. {
  257.     AVTInterfaceParams            avtInterfaceParams;
  258.     Ptr                            responseBufferPtr;
  259.     UInt32                        responseBufferSize;
  260. };
  261. typedef struct AVTPreviousFrameParamsStruct
  262.                                 AVTPreviousFrameParams,
  263.                                 *AVTPreviousFrameParamsPtr;
  264.  
  265. struct AVTWhatchaDoingParamsStruct
  266. {
  267.     AVTInterfaceParams            avtInterfaceParams;
  268.     Ptr                            responseBufferPtr;
  269.     UInt32                        responseBufferSize;
  270.     int                            what;
  271. };
  272. typedef struct AVTWhatchaDoingParamsStruct
  273.                                 AVTWhatchaDoingParams,
  274.                                 *AVTWhatchaDoingParamsPtr;
  275.  
  276. struct AVTDumpParamsStruct
  277. {
  278.     AVTInterfaceParams            avtInterfaceParams;
  279.     Ptr                            dumpBuffer;
  280.     UInt32                        dumpBufferSize;
  281.     UInt32                        dumpBufferOffset;
  282. };
  283. typedef struct AVTDumpParamsStruct
  284.                                 AVTDumpParams,
  285.                                 *AVTDumpParamsPtr;
  286.  
  287. struct AVTPlaySnapShotParamsStruct
  288. {
  289.     AVTInterfaceParams            avtInterfaceParams;
  290.     Ptr                            snapShotBuffer;
  291.     UInt32                        snapShotBufferSize;
  292. };
  293. typedef struct AVTPlaySnapShotParamsStruct
  294.                                 AVTPlaySnapShotParams,
  295.                                 *AVTPlaySnapShotParamsPtr;
  296.  
  297.  
  298. ////////////////////////////////////////////////////////////////////////////////
  299. //
  300. // AV transport control driver family services.
  301. //
  302.  
  303. OSStatus    RegisterAVTClientApplication (
  304.     AVTClientID                    *pAVTClientID,
  305.     UInt32                        clientContextData);
  306.  
  307. OSStatus    UnregisterAVTClientApplication (
  308.     AVTClientID                    avtClientID);
  309.  
  310. OSStatus    GetAVTDriverList (
  311.     AVTDriverID                    *pAVTDriverIDList,
  312.     UInt32                        avtDriverIDListSize,
  313.     UInt32                        *pNumAVTDrivers);
  314.  
  315. OSStatus    CallAVTDriver (
  316.     AVTDriverID                    avtDriverID,
  317.     AVTInterfaceParamsPtr        pInterfaceParams);
  318.  
  319. OSStatus    OpenAVTDriver (
  320.     AVTDriverID                    avtDriverID);
  321.  
  322. OSStatus    CloseAVTDriver (
  323.     AVTDriverID                    avtDriverID);
  324.  
  325. OSStatus    GetNextAVTClientEvent (
  326.     AVTClientID                    avtClientID);
  327.  
  328.  
  329. #if PRAGMA_ALIGN_SUPPORTED
  330. #pragma options align=reset
  331. #endif
  332.  
  333. #if PRAGMA_IMPORT_SUPPORTED
  334. #pragma import off
  335. #endif
  336.  
  337. #ifdef __cplusplus
  338. }
  339. #endif
  340.  
  341. #endif /* __AVTRANSPORT__ */
  342.